<?php
//------------------------------------------------------------ Contraintes d'accès de la page

	// on vérifie que cette page est appelée à partir de l'index et que l'utilisateur n'est pas connecté
	if(isset($_SESSION) && !isset($_SESSION['user_id'])){
	

//------------------------------------------------------------ Valeur des champs avant saisie

	$dv_login = ""; // valeur du champ login (log_login)
	$dv_password = ""; // valeur du champ mot de passe (log_password)
	

//------------------------------------------------------------ Traitements si le formulaire a été envoyé

/********************************* Règles :

	- login et mot de passe ne peuvent pas être vide
	- le mot de passe doit correspondre au login dans l'occurence de infos_utilisateur portant la valeur de login
	- l'utilisateur doit avoir le droit de connexion (NIVEAUUTILISATEUR > 0)
	- le compte doit être validé (champs VALIDEUTILISATEUR  vaut 1) si l'utilisateur n'est pas administrateur

*****************************************/

	$statut = array(); // indique le statut du traitement du formulaire (echec ou succes) - tableau contenant les messages à afficher
	$erreur = false; // indique si une erreur a été rencontrée lors du traitement
	
	trimTabByKey($_POST, "log_");
	
	//---------------------------------- Contrôle des données ----------------------------------

	if(isset($_POST['form_sent'])){ // si le formulaire est envoyé
	
		// Contrôle des données du login
		if(isset($_POST['log_login']) && is_string($_POST['log_login'])){
			if(emptyString($_POST['log_login'])){
				$statut[] = "Login vide";
				$erreur = true;
			}else{
				$dv_login = $_POST['log_login'];
			}
		}else{
			$statut[] = "Aucun login indiqué";
			$erreur = true;
		}
		
		// Contrôle des données du mot de passe
		if(isset($_POST['log_password']) && is_string($_POST['log_password'])){
			if(emptyString($_POST['log_password'])){
				$statut[] = "Mot de passe vide";
				$erreur = true;
			}			
		}else{
			$statut[] = "Aucun mot de passe indiqué";
			$erreur = true;
		}		
		
		//---------------------------------- Tentative de connexion ----------------------------------
	
		if(!$erreur){ // aucune erreur n'a été rencontrée jusqu'ici
		
			$query_verification_connexion = "SELECT u.CODEINFOSUTILISATEUR, u.ESTADMINISTRATEUR, p.NOMPERSONNE, p.PRENOMPERSONNE, u.VALIDEUTILISATEUR, u.NIVEAUUTILISATEUR, u.LOGIN, u.MDPCRYPT ";
			$query_verification_connexion .= "FROM infos_utilisateur u, personne p ";
			$query_verification_connexion .= "WHERE u.CODEPERSONNE = p.CODEPERSONNE ";
			$query_verification_connexion .= "AND LOGIN = ".mysqlString($_POST['log_login'])." ";
			
			$result_verification_connexion = mysql_query($query_verification_connexion, $connexion) or logError("Verif_login_password-".$result_verification_connexion."-".mysql_error());
		
			if(mysql_num_rows($result_verification_connexion) == 1){ // Le compte utilisateur existe
			
				$tab_verification_connexion = mysql_fetch_row($result_verification_connexion);
				
				if($tab_verification_connexion[7] == sha1($_POST['log_password'])){ // le mot de passe saisi correspond au mot de passe du compte
				
					if(!is_null($tab_verification_connexion[4] || (bool)$tab_verification_connexion[1])){ // l'utilisateur n'est pas en attente de validation ou est administrateur
				
						if((bool)$tab_verification_connexion[4] || (bool)$tab_verification_connexion[1]){ // l'utilisateur est validé ou est administrateur
						
							if($tab_verification_connexion[5] >= 1 || (bool)$tab_verification_connexion[1]){ // l'utilisateur a le droit de se connecter ou est administrateur
				
								$statut[] = "Vous êtes désormais connecté - redirection dans 2 sec...";
								
								$_SESSION['user_id'] = $tab_verification_connexion[0];
							
							}else{
								$statut[] = "Vous n'avez pas le droit de vous connecter";
								$erreur = true;
							}
						}else{
							$statut[] = "Ce compte a été invalidé par l'administrateur";
							$erreur = true;
						}
					}else{
						$statut[] = "Ce compte est en attente de validation";
						$erreur = true;
					}
				}else{
					$statut[] = "Mot de passe incorrect";
					$erreur = true;
				}
			}else{
				$statut[] = "Ce login n'existe pas";
				$erreur = true;
			}
		
			mysql_free_result($result_verification_connexion);
		
		}
	
//------------------------------------------------------------ Affichage du statut si le formulaire a été envoyé
	
		if($erreur){
			afficherStatut($statut, 3); // appel à la fonction afficherStatut() définie dans fonctions.php
		}else{
			afficherStatut($statut, 1); // appel à la fonction afficherStatut() définie dans fonctions.php
		}
      redirection("accueil", 2);// appel à la fonction redirection() définie dans fonctions.php
   
	}else {

?>
<form method="post" action="index.php?p=connexion">
   
	<table class="connexion">
		<tr>
			<th colspan="2">Connexion</td>
		</tr>
		<tr>
			<td class="title">Login :</td>
			<td class="champ"><input type="text" name="log_login" size="18" value="<?php echo htmlentities($dv_login, ENT_COMPAT, "UTF-8") ?>" /></td>
		</tr>
		<tr>
			<td class="title">Mot de passe :</td>
			<td class="champ"><input type="password" name="log_password" size="18" value="<?php echo htmlentities($dv_password, ENT_COMPAT, "UTF-8") ?>" /></td>
		</tr>
		<tr>
			<td class="envoi" colspan="2"><input type="submit" value="Connexion" /><input type="hidden" name="form_sent" value="1" /></td>
		</tr>
	</table>
</form>
<?php
//------------------------------------------------------------ Accès refusé à la page
      }

	}else{
	
		if(isset($_SESSION)){
			include("pages/401.htm");
		}
	
	}

?>